02UML类图关系
UML类图关系
面向过程的语言,本质就是函数间的调用关系,但是面向对象以后,函数和数据被封装到类以后,对象的函数间发生关系,此时的研究方向就变成了,类与类之间的关系。
1、纵向
继承父类
实现父类接口
2、横向
类成员对象,引用,指针。
类中成员函数的对象,引用,指针。
(友元也是横向扩展的关系)
3、类类之间关系
a、泛化(Generalization )
泛化是一种继承关系;泛化是特殊到一般的关系,它指定了子类如
何特化父类的所有特征和行为。
箭头指向: 带三角箭头的实线,箭头指向父类
类图关系:

b、实现(Interface Realization )
实现是一种类与接口的关系,表示类是接口所有特征和行为的实现。 **箭头指向:**带三角箭头的虚线,箭头指向接口
类图关系:
c、关联
组合关联(Composition )
组合也是关联关系的一种特例,他体现的是一种 contains-
a 的关系,这种关系比聚合更强,也称为强聚合;同样体现
整体与部分间的关系。
根据关联的强弱区分关联种类
各个关联的代码层面无法区分
组合关系也就是成员关系。
箭头及指向: 带实心菱形的实线,菱形指向整体。
类图关系 
聚合关联(Aggregation )
聚合是关联关系的一种特例,体现的是整体与部分、拥有的
关系,即 has-a 的关系,此时整体与部分之间是可分离的,
表现在代码层面,和关联关系是一致的,只能从语义级别来区分。
箭头及指向: 带空心菱形的实心线,菱形指向整体。
类图关系
普通关联(Association )
是一种拥有的关系, 使一个类知道另一个类的属性和方法,强
调的是一种 A-A 的关系;关联可以是双向的,也可以是单向
的。双向的关联可以有两个箭头或者没有箭头,单向的关联
有一个箭头 。
在代码层面,通常体现为成员变量的关系。
箭头及指向: 带普通箭头的实心线,指向被拥有者。
类图关系:
依赖关联(Dependency )
是一种使用的关系,即一个类的实现需要另一个类的协助,
所以要尽量不使用双向的互相依赖。
箭头及指向: 带箭头的虚线,指向被使用者
类图关系

综合评价:
对于继承、实现体现的是一种类与类、或者类与接口间的纵向关系。
其他四种关联则体现的是类与类、类与接口间的引用、横向关系,是比较难以区分的。
集中关联的强弱程度依次为:组合>聚合>关联>依赖